« ブライダルの打ち合わせ | メイン | フィルター追加 »

Fedora 9でPostgreSQLサーバ構築

Fedora 9にウェブDB用にPostgreSQLをインストールする。
現時点の最新パッケージはpostgresql-server-8.3.3-1.fc9ですが、これをyumでインストールすると最低限必要なpostgresqlとpostgresql-libsが一緒にインストールされる。
# yum install postgresql-server

そしてphp言語でpostgresqlデータベースを利用するために以下のパッケージもインストール。
# yum install php-pgsql

ただしこれだけだとhttpd+phpの環境からpostgresqlが利用できるわけではないので、httpに設定ファイルを再読み込みさせる必要がある。
# service httpd reload

次にpostgresqlの起動だが、そのサーバで初めてpostgresqlを起動させる前にデータベースの初期化を行う必要がある。
# service postgresql initdb

初期化が完了したらいよいよサービスを起動。
# service postgresql start

psコマンドで確認すると /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data というプロセスが確認できる。これは5432ポートとデータディレクトリが/var/lib/pgsql/dataを指定しているものだ。

自動起動にする。
# chkconfig postgresql on

テストも兼ねてphpPgAdminをインストール。
# yum install phpPgAdmin

phpPgAdminは/usr/share/phpPgAdminにインストールされるが、/etc/httpd/conf.d/phpPgAdmin.confが作成され、httpdに対して以下のような設定が追加される。
Alias /phpPgAdmin /usr/share/phpPgAdmin
<Location /phpPgAdmin>
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from ::1
# Allow from .example.com
</Location>
これはサーバ機のMozillaなどのブラウザで、 http://127.0.0.1/phpPgAdmin/ へアクセスすればよいことになっている。
設定が追加されたので反映させておく。
# service httpd reload

ただしこのままではログインできないので、以下のような調整を行う必要がある。
1つ目はpostgresqlの設定変更で、/var/lib/pgsql/data/pg_hba.confの編集。
(69行目 host all all 127.0.0.1/32 ident sameuser)
host all all 127.0.0.1/32 trust

設定変更を反映させるため以下を実行。
# service postgresql reload

2つ目はSELinuxの設定変更。
システム > 管理 > SELinux Management とメニューを選ぶと、SELinux Administrationというウィンドウが開く。そこで左側にあるBooleanを選択し、右側でhttpd_can_network_connect_dbをActiveにするためチェックマークを入れる。

3つ目はphpPgAdminの設定変更で、/etc/phpPgAdmin/config.inc.phpを編集。
(18行目 $conf['servers'][0]['host'] = '';)
$conf['servers'][0]['host'] = 'localhost';

(73行目 $conf['extra_login_security'] = true;)
$conf['extra_login_security'] = false;

(79行目 $conf['owned_only'] = false;)
$conf['owned_only'] = true;

これらの設定ができれば、ブラウザ経由でphpPgAdminを利用してPostgreSQLデータベースにアクセスできるようになる。

phpPgAdmin.jpg

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)